1. Field of the Invention
The present invention relates to a computer program product, system and method for monitoring resources in a cloud computing environment.
2. Description of the Related Art
Cloud computing is a new data-processing model that has become increasingly popular in recent years. In a cloud-computing environment users are allowed to access a pool of shared computing resources (referred to as cloud resources) on-demand, which cloud resources are provisioned, configured and released very rapidly (and then are generally of the virtual type). These cloud resources are supplied by cloud providers, which are accessed through a communication network (whereas their actual implementation is completely opaque to the users).
In this way, the users are relived of the management of the actual physical resources that are needed to implement the cloud resources (for example, their installation and maintenance); particularly. This provides economies of scale, improved exploitation of the physical resources, and high peak-load capacity. Moreover, the users are now allowed to perform tasks (on a pay-per-use basis) that were not feasible previously because of their cost and complexity (especially for individuals or small companies). The de-coupling of the cloud resources from their implementation provides the illusion of an infinite capacity thereof. Moreover, the de-localization of the physical resources implementing the cloud resources enables the users to access them from anywhere.
Monitoring performance of cloud-computing environments is a very common activity. For this purpose, monitoring tools are available to measure usage of their physical resources (such as processing power, mass memory and working memory); examples of commercial monitoring tools available on the market are International Business Machines Corporation (“IBM”) products including CLOUDBURST® and SERVICE DELIVERY MANAGER. The information provided by the monitoring tools is very useful for administrators of the cloud-computing environments. Particularly, the administrators may get instantaneous notifications when any problem is experienced (so that appropriate steps may be taken to remedy the situation). Moreover, the collected information may be logged for tracking over time (for example, for charge-back accounting, service level agreement verification and capacity planning) (CLOUDBURST® and SERVICE DELIVERY MANAGER are trademarks of IBM in the United States and other countries).
However, these monitoring tools may only be available to the administrators of the cloud-computing environments. The provision of the same monitoring tools to the users is not feasible in practice because since they are designed to provide complete access to all the physical resources of the cloud-computing environments and such tools would not be of interest to users since the users are not interested in this kind of information.
United States Patent Publication No. 2010/0088150 (the entire disclosure of which is herein incorporated by reference) discusses a cloud-computing environment wherein each user may configure special monitoring/alert requests (for example, when a firewall rule is breached, or when an average processing power exceeds a threshold value for a given time in a given tier) through a user interface or a configuration file. The cloud-computing environment is then monitored accordingly (for example, by means of corresponding agents), so as to generate events that trigger the delivering of corresponding user notifications via different means (for example, via e-mail or SMS).
United States Patent Publication No. 2011/0055385 (the entire disclosure of which is herein incorporated by reference) discloses the possibility of monitoring the cloud resources (for example, when they change in status or when their usage reaches a predefined threshold) in response to corresponding user requests entered with a Graphical User Interface (GUI). The collected information may also be organized per user or project when the same cloud resources are shared among multiple users or projects. This information may be used to track the usage of the cloud resources, particularly on a per-user or per-project basis, or to send corresponding notifications to the users.
However, the above-mentioned techniques only allow monitoring cloud resources that are under the direct control of the cloud-computing environment such as the virtual machines). Information about the internal behavior of these cloud resources may not be collected because it is only accessible to the corresponding users. Therefore, the above mentioned techniques do not provide comprehensive information at the user-level making it difficult for the users to detect real problems and to investigate their causes. For example, the users may not be able to ascertain the health of critical software applications running on their virtual machines such as whether they have been started or they are in hang, whether an excessive usage of resources of a virtual machine is due to an actual problem of a software application running thereon or simply to a load peak, and the like.